/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package db.core.interfaces;

import core.Course;
import core.Program;
import core.User;
import java.util.Collection;

/**
 *
 * @author Anton
 */
public interface UserDAOCore
{
    User getUserByUserId(long id);
    User getUserByEmail(String email);

    Collection<String> searchForStringUsers(String beginsWith, int maxResult);
    Collection<User> searchForObjectUsers(String beginsWith);
    
    Collection<User> getUsersByFName(String fname);
    Collection<User> getUsersByLName(String lname);
    Collection<User> getAllUsers();

    void addProgramToUser(User user, Program program);
    void deleteProgramFromUser(User user, Program program);

    void addCourseToUser(User user, Course course);
    void deleteCourseFromUser(User user, Course course);
  
    void addUser(User user);
    void updateUser(User user);
    void deleteUser(User user);
}
